home *** CD-ROM | disk | FTP | other *** search
- Subject: v11i048: Jove upgrade kit, Part04/04
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rs@uunet.UU.NET
-
- Submitted-by: Jonathan Payne <jpayne@cs.rochester.edu>
- Posting-number: Volume 11, Issue 48
- Archive-name: jove.pch/Part04
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 4)."
- # Contents: jove.pch.4
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'jove.pch.4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'jove.pch.4'\"
- else
- echo shar: Extracting \"'jove.pch.4'\" \(31574 characters\)
- sed "s/^X//" >'jove.pch.4' <<'END_OF_FILE'
- Xdiff -c ojove/rec.c jove/rec.c
- X*** ojove/rec.c Thu Jul 16 09:15:04 1987
- X--- jove/rec.c Mon Jul 13 09:46:08 1987
- X***************
- X*** 51,57 ****
- X (void) unlink(recfname);
- X }
- X
- X! static
- X putaddr(addr, p)
- X disk_line addr;
- X register File *p;
- X--- 51,57 ----
- X (void) unlink(recfname);
- X }
- X
- X! private
- X putaddr(addr, p)
- X disk_line addr;
- X register File *p;
- X***************
- X*** 63,69 ****
- X putc(*cp++ & 0377, p);
- X }
- X
- X! static
- X putn(cp, nbytes)
- X register char *cp;
- X register int nbytes;
- X--- 63,69 ----
- X putc(*cp++ & 0377, p);
- X }
- X
- X! private
- X putn(cp, nbytes)
- X register char *cp;
- X register int nbytes;
- X***************
- X*** 74,80 ****
- X
- X /* Write out the line pointers for buffer B. */
- X
- X! static
- X dmppntrs(b)
- X register Buffer *b;
- X {
- X--- 74,80 ----
- X
- X /* Write out the line pointers for buffer B. */
- X
- X! private
- X dmppntrs(b)
- X register Buffer *b;
- X {
- X***************
- X*** 86,106 ****
- X
- X /* dump the buffer info and then the actual line pointers. */
- X
- X! static
- X! dmp_buf(b)
- X register Buffer *b;
- X {
- X! static struct rec_entry record;
- X register Line *lp;
- X register int nlines = 0;
- X
- X for (lp = b->b_first; lp != 0; lp = lp->l_next, nlines++)
- X! ;
- X strcpy(record.r_fname, b->b_fname ? b->b_fname : NullStr);
- X strcpy(record.r_bname, b->b_name);
- X record.r_nlines = nlines;
- X putn((char *) &record, sizeof record);
- X- dmppntrs(b);
- X }
- X
- X /* Goes through all the buffers and syncs them to the disk. */
- X--- 86,107 ----
- X
- X /* dump the buffer info and then the actual line pointers. */
- X
- X! private
- X! dmp_buf_header(b)
- X register Buffer *b;
- X {
- X! struct rec_entry record;
- X register Line *lp;
- X register int nlines = 0;
- X
- X for (lp = b->b_first; lp != 0; lp = lp->l_next, nlines++)
- X! if (lp == b->b_dot)
- X! record.r_dotline = nlines;
- X strcpy(record.r_fname, b->b_fname ? b->b_fname : NullStr);
- X strcpy(record.r_bname, b->b_name);
- X record.r_nlines = nlines;
- X+ record.r_dotchar = b->b_char;
- X putn((char *) &record, sizeof record);
- X }
- X
- X /* Goes through all the buffers and syncs them to the disk. */
- X***************
- X*** 110,115 ****
- X--- 111,117 ----
- X SyncRec()
- X {
- X register Buffer *b;
- X+ extern disk_line DFree;
- X
- X if (rec_fd == 0)
- X recinit(); /* Init recover file. */
- X***************
- X*** 123,128 ****
- X--- 125,131 ----
- X continue;
- X else
- X Header.Nbuffers++;
- X+ Header.FreePtr = DFree;
- X putn((char *) &Header, sizeof Header);
- X if (Header.Nbuffers != 0) {
- X SyncTmp();
- X***************
- X*** 130,136 ****
- X if (b->b_type == B_SCRATCH || !IsModified(b))
- X continue;
- X else
- X! dmp_buf(b);
- X }
- X flush(rec_out);
- X }
- X--- 133,148 ----
- X if (b->b_type == B_SCRATCH || !IsModified(b))
- X continue;
- X else
- X! dmp_buf_header(b);
- X! for (b = world; b != 0; b = b->b_next)
- X! if (b->b_type == B_SCRATCH || !IsModified(b))
- X! continue;
- X! else
- X! dmppntrs(b);
- X }
- X flush(rec_out);
- X+ }
- X+
- X+ FullRecover()
- X+ {
- X }
- Xdiff -c ojove/rec.h jove/rec.h
- X*** ojove/rec.h Thu Jul 16 09:15:06 1987
- X--- jove/rec.h Thu Mar 19 17:13:30 1987
- X***************
- X*** 6,20 ****
- X ************************************************************************/
- X
- X struct rec_head {
- X! int Uid, /* Uid of owner. */
- X! Pid; /* Pid of jove process. */
- X! time_t UpdTime; /* Last time this was updated. */
- X! int Nbuffers; /* Number of buffers. */
- X };
- X
- X struct rec_entry {
- X char r_bname[128],
- X r_fname[128];
- X! int r_nlines;
- X };
- X-
- X--- 6,22 ----
- X ************************************************************************/
- X
- X struct rec_head {
- X! int Uid, /* uid of owner */
- X! Pid; /* pid of jove process */
- X! time_t UpdTime; /* last time this was updated */
- X! int Nbuffers; /* number of buffers */
- X! disk_line FreePtr; /* position of DFree */
- X };
- X
- X struct rec_entry {
- X char r_bname[128],
- X r_fname[128];
- X! int r_nlines,
- X! r_dotline, /* so we can really save the context */
- X! r_dotchar;
- X };
- Xdiff -c ojove/recover.c jove/recover.c
- X*** ojove/recover.c Thu Jul 16 09:15:12 1987
- X--- jove/recover.c Mon Jul 13 12:00:15 1987
- X***************
- X*** 405,414 ****
- X printf("recover: cannot create %s.\n", dest);
- X return;
- X }
- X- seekto(src - buflist);
- X if (dest != tty)
- X printf("\"%s\"", dest);
- X! dump_file(outfile);
- X } else
- X printf("\nAborted!\n");
- X fclose(outfile);
- X--- 405,413 ----
- X printf("recover: cannot create %s.\n", dest);
- X return;
- X }
- X if (dest != tty)
- X printf("\"%s\"", dest);
- X! dump_file(src - buflist, outfile);
- X } else
- X printf("\nAborted!\n");
- X fclose(outfile);
- X***************
- X*** 440,454 ****
- X seekto(which)
- X {
- X struct rec_entry rec;
- X
- X! fseek(ptrs_fp, (long) (sizeof Header), L_SET);
- X!
- X! while (which-- > 1) {
- X! read_rec(&rec);
- X! if (fseek(ptrs_fp, (long) rec.r_nlines * sizeof (disk_line),
- X! L_INCR) == -1)
- X! printf("recover: improper fseek!\n");
- X! }
- X }
- X
- X makblist()
- X--- 439,451 ----
- X seekto(which)
- X {
- X struct rec_entry rec;
- X+ long offset;
- X+ int i;
- X
- X! offset = sizeof (Header) + (Header.Nbuffers * sizeof (rec));
- X! for (i = 1; i < which; i++)
- X! offset += buflist[i]->r_nlines * sizeof (disk_line);
- X! fseek(ptrs_fp, offset, L_SET);
- X }
- X
- X makblist()
- X***************
- X*** 455,469 ****
- X {
- X int i;
- X
- X for (i = 1; i <= Header.Nbuffers; i++) {
- X- seekto(i);
- X if (buflist[i] == 0)
- X buflist[i] = (struct rec_entry *) malloc (sizeof (struct rec_entry));
- X read_rec(buflist[i]);
- X }
- X! if (buflist[i]) {
- X free((char *) buflist[i]);
- X buflist[i] = 0;
- X }
- X }
- X
- X--- 452,467 ----
- X {
- X int i;
- X
- X+ fseek(ptrs_fp, (long) sizeof (Header), L_SET);
- X for (i = 1; i <= Header.Nbuffers; i++) {
- X if (buflist[i] == 0)
- X buflist[i] = (struct rec_entry *) malloc (sizeof (struct rec_entry));
- X read_rec(buflist[i]);
- X }
- X! while (buflist[i]) {
- X free((char *) buflist[i]);
- X buflist[i] = 0;
- X+ i++;
- X }
- X }
- X
- X***************
- X*** 481,496 ****
- X return addr;
- X }
- X
- X! dump_file(out)
- X FILE *out;
- X {
- X- struct rec_entry record;
- X register int nlines;
- X register disk_line daddr;
- X char buf[BUFSIZ];
- X
- X! read_rec(&record);
- X! nlines = record.r_nlines;
- X Nchars = Nlines = 0L;
- X while (--nlines >= 0) {
- X daddr = getaddr(ptrs_fp);
- X--- 479,493 ----
- X return addr;
- X }
- X
- X! dump_file(which, out)
- X FILE *out;
- X {
- X register int nlines;
- X register disk_line daddr;
- X char buf[BUFSIZ];
- X
- X! seekto(which);
- X! nlines = buflist[which]->r_nlines;
- X Nchars = Nlines = 0L;
- X while (--nlines >= 0) {
- X daddr = getaddr(ptrs_fp);
- X***************
- X*** 539,549 ****
- X #ifdef KILL0
- X if (kill(Header.Pid, 0) == 0)
- X return 0;
- X- #else
- X- #ifdef LSRHS
- X- if (pexist(Header.Pid))
- X- return 0;
- X- #endif LSRHS
- X #endif KILL0
- X
- X if (Header.Nbuffers == 0) {
- X--- 536,541 ----
- X***************
- X*** 568,573 ****
- X--- 560,566 ----
- X return 1;
- X }
- X makblist();
- X+ list();
- X
- X for (;;) {
- X tellme("(Type '?' for options): ", answer);
- X***************
- X*** 699,707 ****
- X printf("recover: usage: recover [-d directory]\n");
- X printf("Use \"recover\" after JOVE has died for some\n");
- X printf("unknown reason.\n\n");
- X! printf("Use \"recover -syscrash\" when the system is in the process\n");
- X printf("of rebooting. This is done automatically at reboot time\n");
- X printf("and so most of you don't have to worry about that.\n\n");
- X printf("Use \"recover -d directory\" when the tmp files are store\n");
- X printf("in DIRECTORY instead of the default one (/tmp).\n");
- X exit(0);
- X--- 692,701 ----
- X printf("recover: usage: recover [-d directory]\n");
- X printf("Use \"recover\" after JOVE has died for some\n");
- X printf("unknown reason.\n\n");
- X! /* printf("Use \"recover -syscrash\" when the system is in the process\n");
- X printf("of rebooting. This is done automatically at reboot time\n");
- X printf("and so most of you don't have to worry about that.\n\n");
- X+ */
- X printf("Use \"recover -d directory\" when the tmp files are store\n");
- X printf("in DIRECTORY instead of the default one (/tmp).\n");
- X exit(0);
- Xdiff -c ojove/screen.c jove/screen.c
- X*** ojove/screen.c Thu Jul 16 09:15:18 1987
- X--- jove/screen.c Mon Jul 13 08:34:13 1987
- X***************
- X*** 222,231 ****
- X
- X BufSwrite(linenum)
- X {
- X- char *bp;
- X register int n = cursend - cursor,
- X col = 0,
- X c;
- X int StartCol = DesiredScreen[linenum].s_offset,
- X visspace = DesiredScreen[linenum].s_window->w_flags & W_VISSPACE,
- X aborted = 0;
- X--- 222,231 ----
- X
- X BufSwrite(linenum)
- X {
- X register int n = cursend - cursor,
- X col = 0,
- X c;
- X+ register char *bp;
- X int StartCol = DesiredScreen[linenum].s_offset,
- X visspace = DesiredScreen[linenum].s_window->w_flags & W_VISSPACE,
- X aborted = 0;
- X***************
- X*** 369,376 ****
- X What ever turns you on ... */
- X
- X private struct cursaddr {
- X! int c_numchars,
- X! (*c_proc)();
- X };
- X
- X private char *Cmstr;
- X--- 369,376 ----
- X What ever turns you on ... */
- X
- X private struct cursaddr {
- X! int cm_numchars,
- X! (*cm_proc)();
- X };
- X
- X private char *Cmstr;
- X***************
- X*** 532,538 ****
- X register int nlines = destline - CapLine;
- X
- X while (--nlines >= 0)
- X! putchar('\n');
- X CapLine = destline;
- X }
- X
- X--- 532,538 ----
- X register int nlines = destline - CapLine;
- X
- X while (--nlines >= 0)
- X! putpad(NL, 1);
- X CapLine = destline;
- X }
- X
- X***************
- X*** 574,580 ****
- X
- X #define CursMin(which,addrs,max) \
- X for (best = 0, cp = &addrs[1], i = 1; i < max; i++, cp++) \
- X! if (cp->c_numchars < addrs[best].c_numchars) \
- X best = i; \
- X which = &addrs[best];
- X
- X--- 574,580 ----
- X
- X #define CursMin(which,addrs,max) \
- X for (best = 0, cp = &addrs[1], i = 1; i < max; i++, cp++) \
- X! if (cp->cm_numchars < addrs[best].cm_numchars) \
- X best = i; \
- X which = &addrs[best];
- X
- X***************
- X*** 598,610 ****
- X
- X if (dcol == 1 || dcol == 0) { /* Most common case. */
- X HorMin = &WarpHor[FORWARD];
- X! HorMin->c_numchars = dcol + xtracost;
- X } else {
- X! WarpHor[FORWARD].c_numchars = dcol >= 0 ? dcol + xtracost : 1000;
- X! WarpHor[BACKWARD].c_numchars = dcol < 0 ? -(dcol + xtracost) : 1000;
- X! WarpHor[FORTAB].c_numchars = dcol >= 0 && TABS ?
- X ForNum(CapCol, col) + xtracost : 1000;
- X! WarpHor[RETFORWARD].c_numchars = (xtracost + 1 + (TABS ? ForNum(0, col) : col));
- X
- X /* Which is the shortest of the bunch */
- X
- X--- 598,610 ----
- X
- X if (dcol == 1 || dcol == 0) { /* Most common case. */
- X HorMin = &WarpHor[FORWARD];
- X! HorMin->cm_numchars = dcol + xtracost;
- X } else {
- X! WarpHor[FORWARD].cm_numchars = dcol >= 0 ? dcol + xtracost : 1000;
- X! WarpHor[BACKWARD].cm_numchars = dcol < 0 ? -(dcol + xtracost) : 1000;
- X! WarpHor[FORTAB].cm_numchars = dcol >= 0 && TABS ?
- X ForNum(CapCol, col) + xtracost : 1000;
- X! WarpHor[RETFORWARD].cm_numchars = (xtracost + 1 + (TABS ? ForNum(0, col) : col));
- X
- X /* Which is the shortest of the bunch */
- X
- X***************
- X*** 613,620 ****
- X
- X /* Moving vertically is more simple. */
- X
- X! WarpVert[DOWN].c_numchars = dline >= 0 ? dline : 1000;
- X! WarpVert[UPMOVE].c_numchars = dline < 0 ? ((-dline) * UPlen) : 1000;
- X
- X /* Which of these is simpler */
- X CursMin(VertMin, WarpVert, NUMVERT);
- X--- 613,620 ----
- X
- X /* Moving vertically is more simple. */
- X
- X! WarpVert[DOWN].cm_numchars = dline >= 0 ? dline : 1000;
- X! WarpVert[UPMOVE].cm_numchars = dline < 0 ? ((-dline) * UPlen) : 1000;
- X
- X /* Which of these is simpler */
- X CursMin(VertMin, WarpVert, NUMVERT);
- X***************
- X*** 624,651 ****
- X Homing first's total is the sum of the cost of homing
- X and the sum of tabbing (if possible) to the right. */
- X
- X! if (VertMin->c_numchars + HorMin->c_numchars <= 3) {
- X DirectMin = &WarpDirect[DIRECT]; /* A dummy ... */
- X! DirectMin->c_numchars = 100;
- X } else {
- X! WarpDirect[DIRECT].c_numchars = CM ?
- X strlen(Cmstr = tgoto(CM, col, line)) : 1000;
- X! WarpDirect[HOME].c_numchars = HOlen + line +
- X! WarpHor[RETFORWARD].c_numchars;
- X! WarpDirect[LOWER].c_numchars = LLlen + ((ILI - line) * UPlen) +
- X! WarpHor[RETFORWARD].c_numchars;
- X CursMin(DirectMin, WarpDirect, NUMDIRECT);
- X }
- X
- X! if (HorMin->c_numchars + VertMin->c_numchars < DirectMin->c_numchars) {
- X if (line != CapLine)
- X! (*VertMin->c_proc)(line);
- X if (col != CapCol) {
- X #ifdef ID_CHAR
- X if (IN_INSmode) /* We may use real characters ... */
- X INSmode(0);
- X #endif
- X! (*HorMin->c_proc)(col);
- X }
- X } else {
- X #ifdef ID_CHAR
- X--- 624,651 ----
- X Homing first's total is the sum of the cost of homing
- X and the sum of tabbing (if possible) to the right. */
- X
- X! if (VertMin->cm_numchars + HorMin->cm_numchars <= 3) {
- X DirectMin = &WarpDirect[DIRECT]; /* A dummy ... */
- X! DirectMin->cm_numchars = 100;
- X } else {
- X! WarpDirect[DIRECT].cm_numchars = CM ?
- X strlen(Cmstr = tgoto(CM, col, line)) : 1000;
- X! WarpDirect[HOME].cm_numchars = HOlen + line +
- X! WarpHor[RETFORWARD].cm_numchars;
- X! WarpDirect[LOWER].cm_numchars = LLlen + ((ILI - line) * UPlen) +
- X! WarpHor[RETFORWARD].cm_numchars;
- X CursMin(DirectMin, WarpDirect, NUMDIRECT);
- X }
- X
- X! if (HorMin->cm_numchars + VertMin->cm_numchars < DirectMin->cm_numchars) {
- X if (line != CapLine)
- X! (*VertMin->cm_proc)(line);
- X if (col != CapCol) {
- X #ifdef ID_CHAR
- X if (IN_INSmode) /* We may use real characters ... */
- X INSmode(0);
- X #endif
- X! (*HorMin->cm_proc)(col);
- X }
- X } else {
- X #ifdef ID_CHAR
- X***************
- X*** 652,658 ****
- X if (IN_INSmode && !MI)
- X INSmode(0);
- X #endif
- X! (*DirectMin->c_proc)(line, col);
- X }
- X }
- X
- X--- 652,658 ----
- X if (IN_INSmode && !MI)
- X INSmode(0);
- X #endif
- X! (*DirectMin->cm_proc)(line, col);
- X }
- X }
- X
- X***************
- X*** 716,727 ****
- X register int i;
- X
- X if (CS) {
- X! putpad(tgoto(CS, bottom, top));
- X CapCol = CapLine = 0;
- X Placur(top, 0);
- X for (i = 0; i < num; i++)
- X putpad(SR, bottom - top);
- X! putpad(tgoto(CS, ILI, 0));
- X CapCol = CapLine = 0;
- X } else {
- X Placur(bottom - num + 1, 0);
- X--- 716,727 ----
- X register int i;
- X
- X if (CS) {
- X! putpad(tgoto(CS, bottom, top), 1);
- X CapCol = CapLine = 0;
- X Placur(top, 0);
- X for (i = 0; i < num; i++)
- X putpad(SR, bottom - top);
- X! putpad(tgoto(CS, ILI, 0), 1);
- X CapCol = CapLine = 0;
- X } else {
- X Placur(bottom - num + 1, 0);
- X***************
- X*** 785,796 ****
- X register int i;
- X
- X if (CS) {
- X! putpad(tgoto(CS, bottom, top));
- X CapCol = CapLine = 0;
- X Placur(bottom, 0);
- X for (i = 0; i < num; i++)
- X putpad(SF, bottom - top);
- X! putpad(tgoto(CS, ILI, 0));
- X CapCol = CapLine = 0;
- X } else {
- X Placur(top, 0);
- X--- 785,796 ----
- X register int i;
- X
- X if (CS) {
- X! putpad(tgoto(CS, bottom, top), 1);
- X CapCol = CapLine = 0;
- X Placur(bottom, 0);
- X for (i = 0; i < num; i++)
- X putpad(SF, bottom - top);
- X! putpad(tgoto(CS, ILI, 0), 1);
- X CapCol = CapLine = 0;
- X } else {
- X Placur(top, 0);
- Xdiff -c ojove/term.c jove/term.c
- X*** ojove/term.c Thu Jul 16 09:15:21 1987
- X--- jove/term.c Wed Jun 3 16:31:57 1987
- X***************
- X*** 6,11 ****
- X--- 6,12 ----
- X ************************************************************************/
- X
- X #include "jove.h"
- X+ #include <ctype.h>
- X #include <errno.h>
- X #ifdef SYSV
- X # include <termio.h>
- X***************
- X*** 48,60 ****
- X *SF, /* Scroll forward */
- X *SR,
- X *SP, /* Send Cursor Position */
- X- #ifdef LSRHS
- X- *RS, /* Reverse video start */
- X- *RE, /* Reverse end */
- X- #endif
- X *VB,
- X *IP, /* insert pad after character inserted */
- X! *lPC;
- X
- X int LI,
- X ILI, /* Internal lines, i.e., 23 of LI is 24. */
- X--- 49,59 ----
- X *SF, /* Scroll forward */
- X *SR,
- X *SP, /* Send Cursor Position */
- X *VB,
- X+ *BL,
- X *IP, /* insert pad after character inserted */
- X! *lPC,
- X! *NL;
- X
- X int LI,
- X ILI, /* Internal lines, i.e., 23 of LI is 24. */
- X***************
- X*** 70,103 ****
- X HOlen,
- X LLlen;
- X
- X! #ifdef SYSV /* release 2, at least */
- X! char PC ;
- X #else
- X extern char PC;
- X! #endif SYSV
- X
- X static char tspace[256];
- X
- X /* The ordering of ts and meas must agree !! */
- X! #ifdef LSRHS
- X! static char *ts="vsvealdlspcssosecmclcehoupbcicimdceillsfsrvbksketiteALDLICDCrsrepcip";
- X static char **meas[] = {
- X &VS, &VE, &AL, &DL, &SP, &CS, &SO, &SE,
- X &CM, &CL, &CE, &HO, &UP, &BC, &IC, &IM,
- X &DC, &EI, &LL, &SF, &SR, &VB, &KS, &KE,
- X &TI, &TE, &M_AL, &M_DL, &M_IC, &M_DC,
- X! &RS, &RE, &lPC, &IP, 0
- X };
- X- #else
- X- static char *ts="vsvealdlspcssosecmclcehoupbcicimdceillsfsrvbksketiteALDLICDCpcip";
- X- static char **meas[] = {
- X- &VS, &VE, &AL, &DL, &SP, &CS, &SO, &SE,
- X- &CM, &CL, &CE, &HO, &UP, &BC, &IC, &IM,
- X- &DC, &EI, &LL, &SF, &SR, &VB, &KS, &KE,
- X- &TI, &TE, &M_AL, &M_DL, &M_IC, &M_DC,
- X- &lPC, &IP, 0
- X- };
- X- #endif
- X
- X static
- X gets(buf)
- X--- 69,91 ----
- X HOlen,
- X LLlen;
- X
- X! #ifdef SYSVR2 /* release 2, at least */
- X! char PC;
- X #else
- X extern char PC;
- X! #endif SYSVR2
- X
- X static char tspace[256];
- X
- X /* The ordering of ts and meas must agree !! */
- X! static char *ts="vsvealdlspcssosecmclcehoupbcicimdceillsfsrvbksketiteALDLICDCpcipblnl";
- X static char **meas[] = {
- X &VS, &VE, &AL, &DL, &SP, &CS, &SO, &SE,
- X &CM, &CL, &CE, &HO, &UP, &BC, &IC, &IM,
- X &DC, &EI, &LL, &SF, &SR, &VB, &KS, &KE,
- X &TI, &TE, &M_AL, &M_DL, &M_IC, &M_DC,
- X! &lPC, &IP, &BL, &NL, 0
- X };
- X
- X static
- X gets(buf)
- X***************
- X*** 172,189 ****
- X
- X UL = tgetflag("ul");
- X
- X! #ifdef LSRHS /* We, at the high school, are the only ones who
- X! do SO right in termcap, but unfortunately the
- X! right SO doesn't look as good with modelines. */
- X! if (RS)
- X! SO = RS;
- X! if (RE)
- X! SE = RE;
- X! /* I only ever use SO for the modeline anyway. */
- X
- X! /* SO is really BOLDFACE! Why is LS always right and the rest of the
- X! world wrong? */
- X! #endif
- X #ifdef ID_CHAR
- X disp_opt_init();
- X #endif
- X--- 160,177 ----
- X
- X UL = tgetflag("ul");
- X
- X! if (NL == 0)
- X! NL = "\n";
- X! else { /* strip stupid padding information */
- X! while (isdigit(*NL))
- X! NL++;
- X! if (*NL == '*')
- X! NL++;
- X! }
- X
- X! if (BL == 0)
- X! BL = "\007";
- X!
- X #ifdef ID_CHAR
- X disp_opt_init();
- X #endif
- Xdiff -c ojove/termcap.h jove/termcap.h
- X*** ojove/termcap.h Thu Jul 16 09:15:22 1987
- X--- jove/termcap.h Fri May 29 16:28:21 1987
- X***************
- X*** 36,48 ****
- X *SF, /* Scroll forward */
- X *SR, /* Scroll reverse */
- X *SP, /* Send cursor position */
- X- #ifdef LSRHS
- X- *RS, /* reverse video start */
- X- *RE, /* reverse video end */
- X- #endif
- X *VB, /* visible bell */
- X *IP, /* insert pad after character inserted */
- X! *lPC;
- X
- X extern int
- X LI, /* number of lines */
- X--- 36,46 ----
- X *SF, /* Scroll forward */
- X *SR, /* Scroll reverse */
- X *SP, /* Send cursor position */
- X *VB, /* visible bell */
- X+ *BL, /* audible bell */
- X *IP, /* insert pad after character inserted */
- X! *lPC,
- X! *NL; /* newline character (usually \n) */
- X
- X extern int
- X LI, /* number of lines */
- Xdiff -c ojove/tune.h jove/tune.h
- X*** ojove/tune.h Thu Jul 16 09:15:22 1987
- X--- jove/tune.h Fri May 29 11:14:40 1987
- X***************
- X*** 7,17 ****
- X
- X #define TUNED /* don't touch this */
- X
- X- /*#define LSRHS /* if this is Lincoln-Sudbury Regional High School */
- X /*#define MSDOS /* if this is MSDOS */
- X #define BSD4_2 /* Berkeley 4.2 BSD */
- X /*#define BSD4_3 /* Berkeley 4.3 BSD */
- X /*#define SYSV /* for (System III/System V) UNIX systems */
- X #ifdef BSD4_3
- X # ifndef BSD4_2
- X # define BSD4_2 /* 4.3 is 4.2 only different. */
- X--- 7,23 ----
- X
- X #define TUNED /* don't touch this */
- X
- X /*#define MSDOS /* if this is MSDOS */
- X #define BSD4_2 /* Berkeley 4.2 BSD */
- X /*#define BSD4_3 /* Berkeley 4.3 BSD */
- X /*#define SYSV /* for (System III/System V) UNIX systems */
- X+ /*#define SYSVR2 /* system 5, rel. 2 */
- X+ #ifdef SYSVR2
- X+ # ifndef SYSV
- X+ # define SYSV /* SYSV is a subset of SYSVR2 */
- X+ # endif
- X+ #endif
- X+
- X #ifdef BSD4_3
- X # ifndef BSD4_2
- X # define BSD4_2 /* 4.3 is 4.2 only different. */
- X***************
- X*** 36,42 ****
- X # define NBUF 3
- X # endif
- X #
- X! /* # define LOAD_AV /* Use the load average for various commands.
- X # Do not define this if you lack a load average
- X # system call and kmem is read protected. */
- X #
- X--- 42,48 ----
- X # define NBUF 3
- X # endif
- X #
- X! # define LOAD_AV /* Use the load average for various commands.
- X # Do not define this if you lack a load average
- X # system call and kmem is read protected. */
- X #
- X***************
- X*** 67,73 ****
- X # define BIFF /* if you have biff (or the equivalent) */
- X # define F_COMPLETION /* filename completion */
- X # define CHDIR /* cd command and absolute pathnames */
- X! # define KILL0 /* kill(pid, 0) returns 0 if proc exists */
- X # define SPELL /* spell words and buffer commands */
- X # define ID_CHAR /* include code to IDchar */
- X # define WIRED_TERMS /* include code for wired terminals */
- X--- 73,79 ----
- X # define BIFF /* if you have biff (or the equivalent) */
- X # define F_COMPLETION /* filename completion */
- X # define CHDIR /* cd command and absolute pathnames */
- X! /*# define KILL0 /* kill(pid, 0) returns 0 if proc exists */
- X # define SPELL /* spell words and buffer commands */
- X # define ID_CHAR /* include code to IDchar */
- X # define WIRED_TERMS /* include code for wired terminals */
- Xdiff -c ojove/util.c jove/util.c
- X*** ojove/util.c Thu Jul 16 09:15:24 1987
- X--- jove/util.c Fri Jun 19 16:01:01 1987
- X***************
- X*** 7,17 ****
- X
- X #include "jove.h"
- X #include "ctype.h"
- X #include <signal.h>
- X #include <varargs.h>
- X
- X! #ifdef SYSV /* release 2, at least */
- X! short ospeed ;
- X #endif
- X
- X struct cmd *
- X--- 7,18 ----
- X
- X #include "jove.h"
- X #include "ctype.h"
- X+ #include "termcap.h"
- X #include <signal.h>
- X #include <varargs.h>
- X
- X! #ifdef SYSVR2 /* release 2, at least */
- X! short ospeed;
- X #endif
- X
- X struct cmd *
- X***************
- X*** 27,32 ****
- X--- 28,34 ----
- X }
- X
- X int Interactive; /* True when we invoke with the command handler? */
- X+ data_obj *LastCmd;
- X char *ProcFmt = ": %f ";
- X
- X ExecCmd(cp)
- X***************
- X*** 56,76 ****
- X lastline(lp)
- X register Line *lp;
- X {
- X! while (lp->l_next)
- X! lp = lp->l_next;
- X return lp;
- X }
- X
- X! Upper(c)
- X! register int c;
- X! {
- X! return (islower(c) ? toupper(c) : c);
- X! }
- X
- X- int alarmed = 0;
- X-
- X char key_strokes[100];
- X! static char *key_p = key_strokes;
- X
- X init_strokes()
- X {
- X--- 58,74 ----
- X lastline(lp)
- X register Line *lp;
- X {
- X! register Line *next;
- X!
- X! while (next = lp->l_next)
- X! lp = next;
- X return lp;
- X }
- X
- X! private int *slowp = 0;
- X
- X char key_strokes[100];
- X! private char *key_p = key_strokes;
- X
- X init_strokes()
- X {
- X***************
- X*** 88,94 ****
- X
- X slowpoke()
- X {
- X! alarmed++;
- X f_mess(key_strokes);
- X }
- X
- X--- 86,93 ----
- X
- X slowpoke()
- X {
- X! if (slowp)
- X! *slowp = YES;
- X f_mess(key_strokes);
- X }
- X
- X***************
- X*** 95,104 ****
- X #ifdef BSD4_2
- X # define N_SEC 1 /* will be precisely 1 second on 4.2 */
- X #else
- X! # define N_SEC 2 /* but from 0 to 2 seconds otherwise */
- X #endif
- X
- X! waitchar()
- X {
- X #ifdef EUNICE
- X return getch();
- X--- 94,104 ----
- X #ifdef BSD4_2
- X # define N_SEC 1 /* will be precisely 1 second on 4.2 */
- X #else
- X! # define N_SEC 2 /* but from 1 to 2 seconds otherwise */
- X #endif
- X
- X! waitchar(slow)
- X! int *slow;
- X {
- X #ifdef EUNICE
- X return getch();
- X***************
- X*** 107,113 ****
- X int c;
- X int (*oldproc)();
- X
- X! alarmed = 0;
- X oldproc = signal(SIGALRM, slowpoke);
- X
- X if ((old_time = alarm((unsigned) N_SEC)) == 0)
- X--- 107,115 ----
- X int c;
- X int (*oldproc)();
- X
- X! slowp = slow;
- X! if (slow)
- X! *slow = NO;
- X oldproc = signal(SIGALRM, slowpoke);
- X
- X if ((old_time = alarm((unsigned) N_SEC)) == 0)
- X***************
- X*** 214,220 ****
- X Eol();
- X }
- X
- X! int MarkThresh = 22; /* Average screen size ... */
- X static int line_diff;
- X
- X LineDist(nextp, endp)
- X--- 216,222 ----
- X Eol();
- X }
- X
- X! int MarkThresh = 22; /* average screen size ... */
- X static int line_diff;
- X
- X LineDist(nextp, endp)
- X***************
- X*** 255,263 ****
- X PushPntp(line)
- X register Line *line;
- X {
- X- exp_p = NO;
- X if (LineDist(curline, line) >= MarkThresh)
- X! SetMark();
- X }
- X
- X ToFirst()
- X--- 257,264 ----
- X PushPntp(line)
- X register Line *line;
- X {
- X if (LineDist(curline, line) >= MarkThresh)
- X! set_mark();
- X }
- X
- X ToFirst()
- X***************
- X*** 276,282 ****
- X {
- X register char c;
- X
- X! if (dir > 0) {
- X while ((c = linebuf[curchar]) != 0 && !isword(c))
- X curchar++;
- X if (eolp()) {
- X--- 277,283 ----
- X {
- X register char c;
- X
- X! if (dir == FORWARD) {
- X while ((c = linebuf[curchar]) != 0 && !isword(c))
- X curchar++;
- X if (eolp()) {
- X***************
- X*** 319,325 ****
- X filename(b)
- X register Buffer *b;
- X {
- X! return b->b_fname ? pr_name(b->b_fname) : "[No file]";
- X }
- X
- X char *
- X--- 320,326 ----
- X filename(b)
- X register Buffer *b;
- X {
- X! return b->b_fname ? pr_name(b->b_fname, YES) : "[No file]";
- X }
- X
- X char *
- X***************
- X*** 430,436 ****
- X return 0;
- X }
- X
- X! /* Make `buf' modified and tell the redisplay code to update the modeline
- X if it will need to be changed. */
- X
- X int ModCount = 0;
- X--- 431,437 ----
- X return 0;
- X }
- X
- X! /* Make `buf' (un)modified and tell the redisplay code to update the modeline
- X if it will need to be changed. */
- X
- X int ModCount = 0;
- X***************
- X*** 439,447 ****
- X {
- X extern int DOLsave;
- X
- X! if (!curbuf->b_modified)
- X UpdModLine++;
- X! curbuf->b_modified++;
- X DOLsave++;
- X if (!Asking)
- X ModCount++;
- X--- 440,449 ----
- X {
- X extern int DOLsave;
- X
- X! if (!curbuf->b_modified) {
- X UpdModLine++;
- X! curbuf->b_modified = YES;
- X! }
- X DOLsave++;
- X if (!Asking)
- X ModCount++;
- X***************
- X*** 449,457 ****
- X
- X unmodify()
- X {
- X! if (curbuf->b_modified)
- X UpdModLine++;
- X! curbuf->b_modified = 0;
- X }
- X
- X numcomp(s1, s2)
- X--- 451,460 ----
- X
- X unmodify()
- X {
- X! if (curbuf->b_modified) {
- X UpdModLine++;
- X! curbuf->b_modified = NO;
- X! }
- X }
- X
- X numcomp(s1, s2)
- X***************
- X*** 500,506 ****
- X {
- X register char *pp, *pp1;
- X register int len;
- X! int numchars; /* Number of characters to copy forward */
- X
- X if (num <= 0)
- X return;
- X--- 503,509 ----
- X {
- X register char *pp, *pp1;
- X register int len;
- X! int numchars; /* number of characters to copy forward */
- X
- X if (num <= 0)
- X return;
- X***************
- X*** 566,572 ****
- X char *
- X emalloc(size)
- X {
- X! char *ptr;
- X
- X if (ptr = malloc((unsigned) size))
- X return ptr;
- X--- 569,575 ----
- X char *
- X emalloc(size)
- X {
- X! register char *ptr;
- X
- X if (ptr = malloc((unsigned) size))
- X return ptr;
- X***************
- X*** 606,613 ****
- X }
- X
- X #ifdef LOAD_AV
- X! # ifdef BSD4_2
- X! # ifdef PURDUE_EE
- X
- X get_la(dp)
- X double *dp;
- X--- 609,616 ----
- X }
- X
- X #ifdef LOAD_AV
- X! # ifdef BSD4_2
- X! # ifdef PURDUE_EE && (vax || gould)
- X
- X get_la(dp)
- X double *dp;
- X***************
- X*** 615,622 ****
- X *dp = (double) loadav(0) / 100.0;
- X }
- X
- X! # else PURDUE_EE
- X
- X #include <nlist.h>
- X
- X static struct nlist nl[] = {
- X--- 618,628 ----
- X *dp = (double) loadav(0) / 100.0;
- X }
- X
- X! # else PURDUE_EE
- X
- X+ #ifdef sun
- X+ # include <sys/param.h>
- X+ #endif
- X #include <nlist.h>
- X
- X static struct nlist nl[] = {
- X***************
- X*** 628,634 ****
- X--- 634,644 ----
- X get_la(dp)
- X double *dp;
- X {
- X+ #ifdef sun
- X+ long avenrun[3];
- X+ #else
- X double avenrun[3];
- X+ #endif
- X static int kmem = 0;
- X
- X if (kmem == -1) {
- X***************
- X*** 644,650 ****
- X--- 654,664 ----
- X }
- X lseek(kmem, (long) nl[X_AVENRUN].n_value, 0);
- X read(kmem, (char *) avenrun, sizeof(avenrun));
- X+ #ifdef sun
- X+ *dp = (double) avenrun[0] / FSCALE;
- X+ #else
- X *dp = avenrun[0];
- X+ #endif
- X }
- X
- X # endif PURDUE_EE
- X***************
- X*** 693,703 ****
- X strlen(s)
- X register char *s;
- X {
- X! register char *base = s + 1; /* Can you say kludge? */
- X
- X while (*s++)
- X ;
- X! return (s - base);
- X }
- X
- X char *
- X--- 707,717 ----
- X strlen(s)
- X register char *s;
- X {
- X! register char *base = s;
- X
- X while (*s++)
- X ;
- X! return (s - base) - 1;
- X }
- X
- X char *
- X***************
- X*** 719,725 ****
- X *s2;
- X {
- X if (!s1 || !s2)
- X! return 1; /* Which is not zero ... */
- X while (*s1 == *s2++)
- X if (*s1++ == '\0')
- X return 0;
- X--- 733,739 ----
- X *s2;
- X {
- X if (!s1 || !s2)
- X! return 1; /* which is not zero ... */
- X while (*s1 == *s2++)
- X if (*s1++ == '\0')
- X return 0;
- X***************
- X*** 731,738 ****
- X *s2;
- X {
- X if (!s1 || !s2)
- X! return 1; /* Which is not zero ... */
- X! while (*s1 == *s2++ || Upper(*s1) == Upper(s2[-1]))
- X if (*s1++ == '\0')
- X return 0;
- X return (*s1 - *--s2);
- X--- 745,752 ----
- X *s2;
- X {
- X if (!s1 || !s2)
- X! return 1; /* which is not zero ... */
- X! while (CharUpcase(*s1) == CharUpcase(*s2++))
- X if (*s1++ == '\0')
- X return 0;
- X return (*s1 - *--s2);
- X***************
- X*** 744,751 ****
- X register int n;
- X {
- X if (!s1 || !s2)
- X! return 1; /* Which is not zero ... */
- X! while (--n >= 0 && (*s1 == *s2++ || Upper(*s1) == Upper(s2[-1])))
- X if (*s1++ == '\0')
- X return 0;
- X return ((n < 0) ? 0 : *s1 - *--s2);
- X--- 758,765 ----
- X register int n;
- X {
- X if (!s1 || !s2)
- X! return 1; /* which is not zero ... */
- X! while (--n >= 0 && (CharUpcase(*s1) == CharUpcase(*s2++)))
- X if (*s1++ == '\0')
- X return 0;
- X return ((n < 0) ? 0 : *s1 - *--s2);
- Xdiff -c ojove/vars.c jove/vars.c
- X*** ojove/vars.c Thu Jul 16 09:15:25 1987
- X--- jove/vars.c Thu May 28 12:48:29 1987
- X***************
- X*** 25,30 ****
- X--- 25,31 ----
- X VARIABLE, "disable-biff", &BiffChk, V_BOOL,
- X #endif
- X VARIABLE, "error-window-size", &EWSize, V_BASE10,
- X+ VARIABLE, "expand-environment-variables", &DoEVexpand, V_BOOL,
- X VARIABLE, "file-creation-mode", &CreatMode, V_BASE8,
- X VARIABLE, "files-should-end-with-newline", &EndWNewline, V_BOOL,
- X VARIABLE, "internal-tabstop", &tabstop, V_BASE10|V_CLRSCREEN,
- Xdiff -c ojove/version.c jove/version.c
- X*** ojove/version.c Thu Jul 16 09:15:26 1987
- X--- jove/version.c Mon Jun 15 16:26:12 1987
- X***************
- X*** 5,8 ****
- X * included in all the files. *
- X ************************************************************************/
- X
- X! char *version = "4.6.1.4";
- X--- 5,8 ----
- X * included in all the files. *
- X ************************************************************************/
- X
- X! char *version = "4.7";
- Xdiff -c ojove/wind.c jove/wind.c
- X*** ojove/wind.c Thu Jul 16 09:15:28 1987
- X--- jove/wind.c Fri Jun 12 11:39:26 1987
- X***************
- X*** 219,225 ****
- X
- X DOTsave(&savedot);
- X
- X! switch (waitchar()) {
- X case 't':
- X case 'T':
- X ExecCmd((data_obj *) FindCmd(FindTag));
- X--- 219,225 ----
- X
- X DOTsave(&savedot);
- X
- X! switch (waitchar((int *) 0)) {
- X case 't':
- X case 'T':
- X ExecCmd((data_obj *) FindCmd(FindTag));
- X***************
- X*** 354,365 ****
- X
- X GrowWindow()
- X {
- X! WindSize(curwind, abs(exp));
- X }
- X
- X ShrWindow()
- X {
- X! WindSize(curwind, -abs(exp));
- X }
- X
- X /* Change the size of the window by inc. First arg is the window,
- X--- 354,365 ----
- X
- X GrowWindow()
- X {
- X! WindSize(curwind, abs(arg_value()));
- X }
- X
- X ShrWindow()
- X {
- X! WindSize(curwind, -abs(arg_value()));
- X }
- X
- X /* Change the size of the window by inc. First arg is the window,
- X***************
- X*** 434,438 ****
- X
- X SplitWind()
- X {
- X! SetWind(div_wind(curwind, exp_p ? (exp - 1) : 1));
- X }
- X--- 434,460 ----
- X
- X SplitWind()
- X {
- X! SetWind(div_wind(curwind, is_an_arg() ? (arg_value() - 1) : 1));
- X! }
- X!
- X! /* Goto the window with the named buffer. If no such window
- X! exists, pop one and attach the buffer to it. */
- X! GotoWind()
- X! {
- X! extern Buffer *lastbuf;
- X! char *bname;
- X! Window *w;
- X!
- X! bname = ask_buf(lastbuf);
- X! w = curwind->w_next;
- X! do {
- X! if (w->w_bufp->b_name == bname) {
- X! SetABuf(curbuf);
- X! SetWind(w);
- X! return;
- X! }
- X! w = w->w_next;
- X! } while (w != curwind);
- X! SetABuf(curbuf);
- X! pop_wind(bname, NO, -1);
- X }
- END_OF_FILE
- if test 31574 -ne `wc -c <'jove.pch.4'`; then
- echo shar: \"'jove.pch.4'\" unpacked with wrong size!
- fi
- # end of 'jove.pch.4'
- fi
- echo shar: End of archive 4 \(of 4\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-